home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Internet Tools 1993 July / Internet Tools.iso / RockRidge / mail / pp / pp-6.0 / h / dr.h < prev    next >
Encoding:
C/C++ Source or Header  |  1991-12-18  |  4.9 KB  |  171 lines

  1. /* dr.h: delivery report definitions */
  2.  
  3. /*
  4.  * @(#) $Header: /xtel/pp/pp-beta/h/RCS/dr.h,v 6.0 1991/12/18 20:42:44 jpo Rel $
  5.  *
  6.  * $Log: dr.h,v $
  7.  * Revision 6.0  1991/12/18  20:42:44  jpo
  8.  * Release 6.0
  9.  *
  10.  *
  11.  */
  12.  
  13.  
  14.  
  15. #ifndef _H_DR
  16. #define _H_DR
  17. #include "extension.h"
  18. #include "mta.h"
  19.  
  20. typedef struct    DeliveredInfo {
  21.     UTC    del_time;
  22.     int    del_type;
  23. #define DRT_PUBLIC                0
  24. #define DRT_PRIVATE                1
  25. #define DRT_MS                    2
  26. #define DRT_DL                    3
  27. #define DRT_PDAU                4
  28. #define DRT_PHYSICAL_RECIPIENT            5
  29. #define DRT_OTHER                6
  30. } Delinfo;
  31.  
  32.  
  33. typedef struct    NonDeliveredInfo {
  34.     int    nd_rcode;
  35. #define  DRR_NO_REASON                          -1
  36. #define  DRR_TRANSFER_FAILURE                   0
  37. #define  DRR_UNABLE_TO_TRANSFER                 1
  38. #define  DRR_CONVERSION_NOT_PERFORMED           2
  39. #define  DRR_PHYS_RENDITION_NOT_PERFORMED    3
  40. #define     DRR_PHYS_DELIVERY_NOT_PERFORMED    4
  41. #define  DRR_RESTRICTED_DELIVERY        5
  42. #define  DRR_DIRECTORY_OP_UNSUCCESSFUL        6
  43.  
  44.     int    nd_dcode;
  45. #define  DRD_UNRECOGNISED_OR                    0
  46. #define  DRD_AMBIGUOUS_OR                       1
  47. #define  DRD_MTA_CONGESTION                     2
  48. #define  DRD_LOOP_DETECTED                      3
  49. #define  DRD_UA_UNAVAILABLE                     4
  50. #define  DRD_MAX_TIME_EXPIRED                   5
  51. #define  DRD_ENCINFOTYPES_NOTSUPPORTED          6
  52. #define  DRD_CONTENT_TOO_LONG                   7
  53. #define  DRD_CONVERSION_IMPRACTICAL             8
  54. #define  DRD_CONVERSION_PROHIBITED              9
  55. #define  DRD_IMPLICITCONV_NOTREGISTERED         10
  56. #define  DRD_INVALID_PARAMETERS                 11
  57. #define    DRD_CONTENT_SYNTAX_ERROR    12
  58. #define    DRD_SIZE_CONSTRAINT_VIOLATION    13
  59. #define    DRD_PROTOCOL_VIOLATION    14
  60. #define    DRD_CONTENT_TYPE_NOT_SUPPORTED    15
  61. #define    DRD_TOO_MANY_RECIPIENTS    16
  62. #define    DRD_NO_BILATERAL_AGREEMENT    17
  63. #define    DRD_UNSUPPORTED_CRITICAL_FUNCTION    18
  64. #define    DRD_CONVERSION_WITH_LOSS_PROHIBITED    19
  65. #define    DRD_LINE_TOO_LONG    20
  66. #define    DRD_PAGE_SPLIT    21
  67. #define    DRD_PICTORIAL_SYMBOL_LOSS    22
  68. #define    DRD_PUNCTUATION_SYMBOL_LOSS    23
  69. #define    DRD_ALPHABETIC_CHARACTER_LOSS    24
  70. #define    DRD_MULTIPLE_INFORMATION_LOSS    25
  71. #define    DRD_RECIPIENT_REASSIGNMENT_PROHIBITED    26
  72. #define    DRD_REDIRECTION_LOOP_DETECTED    27
  73. #define    DRD_DL_EXPANSION_PROHIBITED    28
  74. #define    DRD_NO_DL_SUBMIT_PERMISSION    29
  75. #define    DRD_DL_EXPANSION_FAILURE    30
  76. #define    DRD_PHYSICAL_RENDITION_ATTRIBUTES_NOT_SUPPORTED    31
  77. #define    DRD_UNDLIV_PD_ADDRESS_INCORRECT    32
  78. #define    DRD_UNDLIV_PD_OFFICE_INCORRECT_OR_INVALID    33
  79. #define    DRD_UNDLIV_PD_ADDRESS_INCOMPLETE    34
  80. #define    DRD_UNDLIV_RECIPIENT_UNKNOWN    35
  81. #define    DRD_UNDLIV_RECIPIENT_DECEASED    36
  82. #define    DRD_UNDLIV_ORGANIZATION_EXPIRED    37
  83. #define    DRD_UNDLIV_RECIPIENT_REFUSED_TO_ACCEPT    38
  84. #define    DRD_UNDLIV_RECIPIENT_DID_NOT_CLAIM    39
  85. #define    DRD_UNDLIV_RECIPIENT_CHANGED_ADDRESS_PERMANENTLY    40
  86. #define    DRD_UNDLIV_RECIPIENT_CHANGED_ADDRESS_TEMPORARILY    41
  87. #define    DRD_UNDLIV_RECIPIENT_CHANGED_TEMPORARY_ADDRESS    42
  88. #define    DRD_UNDLIV_NEW_ADDRESS_UNKNOWN    43
  89. #define    DRD_UNDLIV_RECIPIENT_DID_NOT_WANT_FORWARDING    44
  90. #define    DRD_UNDLIV_ORIGINATOR_PROHIBITED_FORWARDING    45
  91. #define    DRD_SECURE_MESSAGING_ERROR    46
  92. #define    DRD_UNABLE_TO_DOWNGRADE    47
  93.     } NonDelinfo;
  94.  
  95.  
  96. typedef struct    report    {
  97.     char    rep_type;
  98. #define  DR_REP_SUCCESS                         0
  99. #define  DR_REP_FAILURE                         1
  100.     union    {
  101.         Delinfo        rep_dinfo;
  102.         NonDelinfo    rep_ndinfo;
  103.         } rep;
  104.     } Report;
  105.  
  106.  
  107.  
  108. typedef struct    ReportedRecipientInfo {
  109.     struct ReportedRecipientInfo *rr_next;
  110.     int        rr_recip;    /* reference to adr struct */
  111.     Report        rr_report;
  112.     EncodedIT    *rr_converted;
  113.     FullName    *rr_originally_intended_recip;
  114.     char        *rr_supplementary;
  115.  
  116.     Redirection    *rr_redirect_history;
  117.     char        rr_redirect_history_crit;
  118.  
  119.     FullName    *rr_physical_fwd_addr;
  120.     char        rr_physical_fwd_addr_crit;
  121.  
  122.     struct qbuf    *rr_recip_certificate;
  123.     char        rr_recip_certificate_crit;
  124.  
  125.     struct qbuf    *rr_report_origin_authentication_check;
  126.     char        rr_report_origin_authentication_check_crit;
  127.  
  128.     UTC        rr_arrival;
  129.     X400_Extension    *rr_per_recip_extensions;
  130.     } Rrinfo;
  131.  
  132.  
  133.  
  134.                     /* Originator, MPDU ID, content id  */
  135.                     /* Content correlator, EITs */
  136.                     /* be stored in associated addr */
  137.                     /* structure - no repeat    */
  138. typedef struct    DeliveryReportMPDU {
  139.     MPDUid        *dr_mpduid;    /* envelope mpdu id */
  140.     Trace        *dr_trace;    /* envelope trace */
  141.     Trace        *dr_subject_intermediate_trace; /* content trace */
  142.  
  143.     DLHistory     *dr_dl_history;
  144.     char        dr_dl_history_crit;
  145.  
  146.     FullName     *dr_reporting_dl_name; 
  147.     char        dr_reporting_dl_name_crit;
  148.  
  149.     struct qbuf     *dr_security_label;
  150.     char        dr_security_label_crit;
  151.  
  152.     struct qbuf     *dr_reporting_mta_certificate;
  153.     char        dr_reporting_mta_certificate_crit;
  154.  
  155.     struct qbuf     *dr_report_origin_auth_check;
  156.     char        dr_report_origin_auth_check_crit;
  157.  
  158.     X400_Extension    *dr_per_envelope_extensions;
  159.     X400_Extension    *dr_per_report_extensions;
  160.     Rrinfo        *dr_recip_list;
  161. } DRmpdu;
  162.  
  163. /* couple of useful defines */
  164. #define DR_FILENO_DEFAULT                       1
  165.  
  166. extern void    dr_init ();
  167. extern void    dr_free ();
  168. extern void    rrinfo_free ();
  169.  
  170. #endif
  171.